package com.serverzuul.serverzuul;

import com.netflix.zuul.ZuulFilter;
import org.springframework.stereotype.Component;

/**
 * @author dfj@99chuxing.com
 * @date 2018/4/17 0017 13:52
 * 使用zuul 实现过滤功能
 */
@Component
public class Myfilter extends ZuulFilter {


    /**
     * filterType：返回一个字符串代表过滤器的类型 zuul中定义了四种不同生命周期的过滤器类型
     * pre：路由之前
     * routing：路由之时
     * post： 路由之后
     * error：发送错误调用
     *
     * @return
     */
    @Override
    public String filterType() {
        return "pre";
    }

    /**
     * 过滤的顺序
     * @return
     */
    @Override
    public int filterOrder() {
        return 0;
    }

    /**
     * 这里可以写逻辑判断，是否要过滤，本文true,永远(全部)过滤。
     * @return
     */
    @Override
    public boolean shouldFilter() {
        return true;
    }

    /**
     * 过滤器的具体逻辑。可用很复杂，包括查sql，nosql去判断该请求到底有没有权限访问。
     * @return
     */
    @Override
    public Object run() {

        System.out.println("我就是过滤的部分呀----");

        return null;
    }
}
